package com.yangkunhong.utils;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;

/**
 * ClassName: DBUtils
 * Description:
 *
 * @author yangkunhong
 * @date 2024/6/4 9:22
 */
public class DBUtils {
    private static DataSource dataSource;
    /**
     * 供外部调用，获取数据库连接池对象
     */
    public static DataSource getDataSource(){
        return dataSource;
    }
    /**
     * 供外部调用，获取一个数据库连接资源
     * */
    public static Connection getConnection() throws  SQLException {

        return dataSource.getConnection();
    }
    /**
     * 静态代码片段 类加载执行初始化操作
     * 类加载时，就要创建数据库连接池
     * */
    static {
        //1 配置属性
        //1.1 外部配置文件xxxx.properties【编译后可以修改配置】
        // 1.2 直接在代码中声明【修改配置需要重新编译】
        Properties properties = new Properties();
        try {
            properties.load(DBUtils.class.getClassLoader().getResourceAsStream("db.properties"));
        } catch (Exception e) {
            System.out.println("配置文件找不到");
            e.printStackTrace();
        }

        try {
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            System.out.println("数据库连接失败");
            e.printStackTrace();
        }


    }
}
